prolog './g422rk.ijs'
NB. /:@/: y -------------------------------------------------------------

randuni''

rk=: 3 : '/:/:y'

f=: 4 : 0
 assert. (/:@/:   -: rk  ) xx=: x{~ (  1e4,y) ?@$ #x
 assert. (/:@/:"2 -: rk"2) xx=: x{~ (5 1e4,y) ?@$ #x
 1
)

0 1 f"1 0 i.10
a.  f"1 0 i.10

(/:@/:   -: rk  ) x=: u:   1e4 ?@$ 65536
(/:@/:"1 -: rk"1) x=: u: 5 1e4 ?@$ 65536
(/:@/:   -: rk  ) x=: u:   1e6 ?@$ 65536
(/:@/:"1 -: rk"1) x=: u: 5 1e6 ?@$ 65536

(/:@/:   -: rk  ) x=: 10&u: RAND32   1e4 ?@$ C4MAX
(/:@/:"1 -: rk"1) x=: 10&u: RAND32 5 1e4 ?@$ C4MAX
(/:@/:   -: rk  ) x=: 10&u: RAND32   1e5 ?@$ C4MAX
(/:@/:"1 -: rk"1) x=: 10&u: RAND32 5 1e5 ?@$ C4MAX

(/:@/:   -: rk  ) x=: sdot0{~   1e4 ?@$#sdot0
(/:@/:"1 -: rk"1) x=: sdot0{~ 5 1e4 ?@$#sdot0
(/:@/:   -: rk  ) x=: sdot0{~   1e6 ?@$#sdot0
(/:@/:"1 -: rk"1) x=: sdot0{~ 5 1e6 ?@$#sdot0

g=: 3 : 0
 assert. (/:@/:   -: rk  ) xx=:   1e4 ?@$ y
 assert. (/:@/:"1 -: rk"1) xx=: 3 1e4 ?@$ y
 1
)

g"0 ] 10^i.10
g"0 ] 10^IF64#11 12 13 18

(/:@/:   -: rk  ) x=:        1e3 5 ?@$ 0
(/:@/:   -: rk  ) x=: <"0 ]  1e3 5 ?@$ 1e4
(/:@/:   -: rk  ) x=: <"0 ]  1e3 5 ?@$ 1e6
(/:@/:   -: rk  ) x=: y{~    1e3 5 ?@$ #y=: 'abc';1 2 3;7.5;;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e3 5 ?@$ #y=: (u:'abc');1 2 3;7.5;(u:&.>) ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e3 5 ?@$ #y=: (10&u:'abc');1 2 3;7.5;(10&u:&.>) ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e3 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;s:@<"0&.> ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e3 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;<"0@s: ;:'bush kerry nader'

(/:@/:   -: rk  ) x=:        1e5 5 ?@$ 0
(/:@/:   -: rk  ) x=: <"0 ]  1e5 5 ?@$ 1e4
(/:@/:   -: rk  ) x=: <"0 ]  1e5 5 ?@$ 1e6
(/:@/:   -: rk  ) x=: y{~    1e5 5 ?@$ #y=: 'abc';1 2 3;7.5;;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e5 5 ?@$ #y=: (u:'abc');1 2 3;7.5;(u:&.>) ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e5 5 ?@$ #y=: (10&u:'abc');1 2 3;7.5;(10&u:&.>) ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e5 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;s:@<"0&.> ;:'bush kerry nader'
(/:@/:   -: rk  ) x=: y{~    1e5 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;<"0@s: ;:'bush kerry nader'

(/:@/:"2 -: rk"2) x=:      3 1e3 5 ?@$ 0
(/:@/:"2 -: rk"2) x=: <"0 ]3 1e3 5 ?@$ 1e4
(/:@/:"2 -: rk"2) x=: <"0 ]3 1e3 5 ?@$ 1e6
(/:@/:"2 -: rk"2) x=: y{~  3 1e3 5 ?@$ #y=: 'abc';1 2 3;7.5;;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e3 5 ?@$ #y=: (u:'abc');1 2 3;7.5;(u:&.>) ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e3 5 ?@$ #y=: (10&u:'abc');1 2 3;7.5;(10&u:&.>) ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e3 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;s:@<"0&.> ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e3 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;<"0@s: ;:'bush kerry nader'

(/:@/:"2 -: rk"2) x=:      3 1e5 5 ?@$ 0
(/:@/:"2 -: rk"2) x=: <"0 ]3 1e5 5 ?@$ 1e4
(/:@/:"2 -: rk"2) x=: <"0 ]3 1e5 5 ?@$ 1e6
(/:@/:"2 -: rk"2) x=: y{~  3 1e5 5 ?@$ #y=: 'abc';1 2 3;7.5;;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e5 5 ?@$ #y=: (u:'abc');1 2 3;7.5;(u:&.>) ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e5 5 ?@$ #y=: (10&u:'abc');1 2 3;7.5;(10&u:&.>) ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e5 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;s:@<"0&.> ;:'bush kerry nader'
(/:@/:"2 -: rk"2) x=: y{~  3 1e5 5 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;<"0@s: ;:'bush kerry nader'

(/:@/:"0 -: rk"0) x=:     3 12 ?@$ 2
(/:@/:"0 -: rk"0) x=: a.{~3 12 ?@$ #a.
(/:@/:"0 -: rk"0) x=: adot1{~3 12 ?@$ #adot1
(/:@/:"0 -: rk"0) x=: adot2{~3 12 ?@$ #adot2
(/:@/:"0 -: rk"0) x=: sdot0{~3 12 ?@$ #sdot0
(/:@/:"0 -: rk"0) x=:     3 12 ?@$ 2e9
(/:@/:"0 -: rk"0) x=:     3 12 ?@$ 0
(/:@/:"0 -: rk"0) x=: u:  3 12 ?@$ 65536
(/:@/:"0 -: rk"0) x=: 10&u: RAND32  3 12 ?@$ C4MAX
(/:@/:"0 -: rk"0) x=: y{~ 3 12 ?@$ #y=: 'abc';1 2 3;7.5;;:'bush kerry nader'
(/:@/:"0 -: rk"0) x=: y{~ 3 12 ?@$ #y=: (u:'abc');1 2 3;7.5;(u:&.>) ;:'bush kerry nader'
(/:@/:"0 -: rk"0) x=: y{~ 3 12 ?@$ #y=: (10&u:'abc');1 2 3;7.5;(10&u:&.>) ;:'bush kerry nader'
(/:@/:"0 -: rk"0) x=: y{~ 3 12 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;s:@<"0&.> ;:'bush kerry nader'
(/:@/:"0 -: rk"0) x=: y{~ 3 12 ?@$ #y=: (s:@<"0 'abc');1 2 3;7.5;<"0@s: ;:'bush kerry nader'

x=: 1e4 ?@$ 1e4
y=: 1e4 ?@$ 5000
(/:x/:y) -: x /:@/: y

x=: 1e5 ?@$ 1e5
y=: 1e5 ?@$ 5000
(/:x/:y) -: x /:@/: y

x=: (5 1e4 ?@$ 2) * 5 1e4 ?@$ 1000
(/:@/:"1 x) -: /:@/:"1 $.x

x=: (5 1e5 ?@$ 2) * 5 1e5 ?@$ 1000
(/:@/:"1 x) -: /:@/:"1 $.x

x=: (5 1e4 ?@$ 2)
(/:@/:"1 x) -: /:@/:"1 $.x

(i.0    ) -: /:@/:     0 1e9 2e9 99 $ 0
(i.0 2e9) -: /:@/:"1 ] 0 2e9        $ 0
(i.0 2e9) -: /:@/:"2 ] 0 2e9 17     $ 0

(3 4 17$i.17) -: /:@/:"2 ] 3 4 17 0 $ 0
(3 4 17$i.17) -: rk   "2 ] 3 4 17 0 $ 0

(/:@/: -: /:@/:@x:)"1 ] 17 31 ?@$ 1000

'limit error' -: /:@/:"2 etx 0 $~ (IF64$2e9),1e9 11 17 0


randfini''

epilog''

